{{tag>Lucid cao mécanique}}
----

====== HeeksCAD ======


**HeeksCAD** est un logiciel de [[:CAO]] sous licence [[wpfr>Licence_BSD|BSD]] permettant la modélisation de pièces en 3D. Il est orienté vers le génie mécanique et la fabrication. Il possède une architecture modulaire permettant de lui ajouter des greffons tels [[http://code.google.com/p/heekscnc/|HeeksCNC]], [[http://code.google.com/p/heeksart/|HeeksArt]] et [[http://code.google.com/p/heekspython/|HeeksPython]]. Il vise à offrir éventuellement des fonctionnalités semblables à des logiciels propriétaires tels que CATIA, SolidWorks, Pro|Engineer, Autodesk Inventor ou Solid Edge.

Certaines de ses particularités:

   * la modélisation de solides est basée sur [[:OpenCascade]], et permet la création de solides par formes primitives ou par extrusion, révolution ou lissage à partir d'esquisses, les opérations booléennes, les chanfreins et les congés;
   * il exporte aux formats standards STEP, IGES, STL et DXF, et permet l'importation du DXF.
   * un solveur de contraintes géométriques permet de créer des dessins précis à partir d'esquisses rapides.

À noter que ce logiciel **est toujours en développement**, il ne doit donc pas être vu comme une solution à utiliser en contexte professionnel. Cependant, il s'agit d'un logiciel intéressant à tester, ou peut-être même suffira-t-il pour un usage personnel.

{{applications:heekscad_lucid_01.png?500}}

===== Pré-requis =====

  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.
  * Disposer d'au moins 500 Mio d'espace disque, dont environ 300 Mio dans le Dossier personnel.
  * Disposer d'une carte graphique supportant l'[[:accélération graphique]] (ATI, Intel ou Nvidia) FIXME //(à confirmer)//

===== Installation par compilation d'un paquet =====

Il n'y a pas de paquet d'installation disponible. Il faut donc [[:tutoriel/compilation|compiler les sources]] depuis le site du projet. Si la procédure peut sembler intimidante, elle est relativement simple à accomplir si le [[:terminal]] ne vous fait pas peur. Elle génère un paquet .deb facile à installer et désinstaller, qui créé un lanceur dans le menu Applications.

==== Installer les dépendances ====

Il faut d'abord installer les bibliothèques nécessaires à la compilation, ainsi que les bibliothèques utilisées par le logiciel (notamment OpenCASCADE et wxWidgets) : [[:tutoriel:comment_installer_un_paquet|installez les paquets]] **[[apt>git-core,libwxbase2.8-dev,g++,build-essential,libopencascade-dev,libwxgtk2.8-dev,libgtkglext1-dev,python-dev,cmake,libboost-python-dev|git-core libwxbase2.8-dev g++ build-essential libopencascade-dev libwxgtk2.8-dev libgtkglext1-dev python-dev cmake libboost-python-dev]]**

==== Télécharger les sources ===

La commande suivante télécharge les sources du logiciel dans un dossier **HeeksCAD** sous votre Dossier personnel:.

  cd ~
  git clone git://github.com/Heeks/heekscad.git HeeksCAD

==== Compilation ====

Il faut maintenant changer de répertoire, puis exécuter la compilation et créer les liens dans les dossiers système:

<code>cd ~/HeeksCAD
cmake .
make package</code>

La compilation prend quelques minutes, la progression est affichée en pourcentage dans le terminal.

==== Installation du paquet ====

Une fois la compilation terminée, un paquet nommé **heekscad_beta-0.xx.0_i386.deb** ou **heekscad_beta-0.xx.0_amd64.deb** selon votre [[architecture materielle|architecture]] se trouvera dans le répertoire HeeksCAD. Il suffit alors de l'[[:tutoriel:comment_installer_un_paquet|installer]] pour compléter l'installation.

===== Utilisation=====

Lancez l'application depuis le menu //Applications -> Graphisme -> HeeksCAD// ou //via// la [[:commande_shell|commande]] suivante :

  heekscad

<note tip>Portez attention à la casse, sinon la commande ne sera pas reconnue!</note>

=== Astuces ===

  * On peut créer des **formes primitives** (cube, cylindre, cône et sphère) par le menu //Objet 3D// ou la barre d'outils du même nom. Une fois créé, le solide peut être modifié (déplacement, redimensionnement, étirement, rotation) dans la fenêtre graphique à l'aide de la souris en sélectionnant les //icônes de manipulation//. Les dimensions peuvent aussi être saisies au clavier dans la fenêtre //Propriétés// du panneau latéral.
{{ applications:heekscad_lucid_04.png }}
  * Pour réaliser une **extrusion**, il faut d'abord créer une esquisse avec les outils de géométrie. Il faut ensuite terminer l'esquisse, puis la sélectionner avant d'activer la fonction //Extruder une esquisse//. À noter que celle-ci n'est possible que dans l'axe Z du système de coordonnées. Il est possible de créer un nouveau système de coordonnées dont l'orientation de l'axe Z sera différente du système de coordonnées global. On saisis une valeur de hauteur et on termine la fonction en cliquant sur le bouton //Accepter valeur et continuer// dans la fenêtre //Saisir// du panneau latéral.
  * La **révolution** se fait par la même méthode que l'extrusion. L'axe de rotation se trouve sur l'axe Z. Le profil n'a pas besoin de toucher à l'axe de rotation.
{{ applications:heekscad_lucid_06.png?248 }}
  * Le **lissage** n'est pas contraint par l'axe Z. Il nécessite 2 esquisses. Les deux esquisses doivent avoir le même nombre d'éléments, mais n'ont pas besoin d'être sur des plans parallèles. Par exemple, le lissage d'un rectangle à un losange est accepté, mais pas celui d'un rectangle à un cercle.
{{ applications:heekscad_lucid_05.png?248 }}

===== Greffons =====
L'architecture modulaire de **HeeksCAD** permet l'installation de **greffons** qui lui ajoutent des fonctionnalités.

==== HeeksCNC ====
**HeeksCNC** permet de créer des parcours d'outil et de générer un code de programmation lisible par les [[wpfr>Machine-outil_%C3%A0_commande_num%C3%A9rique|machines-outil à commande numérique]]. Pour plus de détails, consultez [[http://code.google.com/p/heekscnc/|la page de projet du greffon HeeksCNC]] **(en)**.

{{http://heekscnc.googlecode.com/svn/wiki/HeeksCNC.png?450}}
=== Installation de HeeksCNC ===
Saisir les commandes suivantes dans un [[:terminal]]:
<code>#Obtenir les fichiers de HeeksCNC du dépôt Git, compiler et installer
cd ~/HeeksCAD/
git clone git://github.com/Heeks/heekscnc.git HeeksCNC
cd ~/HeeksCAD/HeeksCNC/
cmake .
make package
sudo dpkg -i heekscnc_beta*.deb</code>

=== Installer les bibliothèques associées ===
HeeksCNC utilise certaines bibliothèques pour effectuer différentes opérations. Installez-les toutes, ou seulement celles que vous comptez utiliser.

== libarea ==

area.so est requis pour les //pocket operations//. FIXME

<code>#Obtenir les fichiers libarea des sources SVN, compiler, et installer
cd ~/HeeksCAD/HeeksCNC/
git clone git://github.com/Heeks/libarea.git libarea
cd ~/HeeksCAD/HeeksCNC/libarea/
make clean
make
sudo make install</code>

== libactp ==

actp.so est requis pour les opérations de dégrossissage adaptatif.

<code>#Obtenir les fichiers libactp (dégrossissage adaptatif) des sources SVN, compiler, et installer
cd ~/HeeksCAD/HeeksCNC/
git clone git://github.com/Heeks/libactp.git libactp
cd ~/HeeksCAD/HeeksCNC/libactp/PythonLib
make clean
make
sudo make install</code>

== opencamlib ==

opencamlib remplace pycam. Il est requis pour les opérations en zigzag. Pour l'installation de cette bibliothèque, [[:tutoriel:comment_installer_un_paquet|installez]] au préalable le paquet **[[apt>subversion]]**.

<code>#Obtenir les fichiers opencamlib files des sources SVN, compiler, et installer
cd ~/HeeksCAD/HeeksCNC/
svn checkout http://opencamlib.googlecode.com/svn/trunk/ opencamlib
cd ~/HeeksCAD/HeeksCNC/opencamlib/src
make clean
cmake .
make
sudo make install</code>

=== Activation du greffon HeeksCNC ===

  * Lancer HeeksCAD
  * Ouvrir le menu //Fichier -> Greffons//
  * Dans la boîte de dialogue, cliquer sur le bouton //Nouveau//
  * Dans la boîte de dialogue //Ajouter un nouveau greffon//, saisir **HeeksCNC** pour le nom, puis dans //Chemin des fichiers//, cliquer sur le bouton « ... »
  * Localiser le fichier libheekscnc.so.0.5.1 sous /usr/local/lib/heekscnc/, cliquer sur le bouton OK, quittez puis relancez HeeksCAD.

Un menu **Usinage** devrait maintenant être ajouté, ainsi qu'une barre d'outils avec les icônes d'usinage.

=== Utilisation de HeeksCNC ===
Des instructions sont disponibles sur le wiki du site officiel: [[http://code.google.com/p/heekscnc/wiki/HowToUse|How to use different operations in HeeksCNC]] **(en anglais)**

==== HeeksArt ====
**HeeksArt** permet la création de surfaces complexes de type [[wpfr>Mesh_(Objet)|Mesh]] au moyen de courbes de Bézier. Pour plus de détails, consultez [[http://code.google.com/p/heeksart/|la page de projet du greffon HeeksArt]] **(en)**

{{http://heeksart.googlecode.com/svn/wiki/HeeksArt.png?450}}

=== Installation de HeeksArt ===
FIXME

==== HeeksPython ====
**HeeksPython** ajoute une console en langage Python. Pour plus de détails, consultez [[http://code.google.com/p/heekspython/|la page de projet du greffon HeeksPython]] **(en)**

===== Problèmes connus =====

==== Boutons manquants sous Ubuntu 10.04 et thème Ambiance ====

Sous [[lucid|Ubuntu 10.04 LTS]] avec le thème par défaut Ambiance (et possiblement d'autres thèmes), la dernière icône de chacune des barre d'outils n'est pas affichée:

{{applications:heekscad_lucid_02.png?650}}

On peut régler le problème de la façon suivante:
  * Aller dans le menu //Fenêtres -> Barre d'outils à gauche//; ceci a pour effet d'aligner toutes les barres d'outils à la gauche de la fenêtre, et de les afficher correctement; 
{{applications:heekscad_lucid_03.png?375}}
  * Replacer les barres d'outils vers le haut de la fenêtre à l'aide de la souris.

//(Source: [[http://code.google.com/p/heekscad/issues/detail?id=270|Issue 270]])//

==== Fonctions inopérantes ====

Il est possible que certaines fonctions soient inopérantes (outil extrusion, importation STEP, sauvegarde) après l'installation à l'aide du script automatisé. Dans ce cas, essayez de réinstaller manuellement en suivant les étapes [[heekscad#Télécharger les sources]] et [[heekscad#Compilation]]. Il n'est pas nécessaire de répéter l'étape de configuration.

===== Mise à jour =====

Le logiciel HeeksCAD est en développement constant. L'équipe de développeurs en modifient le code presque à chaque semaine, pour corriger des bogues ou ajouter des fonctionnalités. Il peut donc être intéressant de mettre à jour le logiciel.

Cette mise à jour se fait simplement en répétant les étapes de l'[[#installation par compilation d'un paquet]].

===== Désinstallation =====

Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.

Vous pouvez également supprimer le dossier **HeeksCAD** ayant servi à la compilation, et qui se trouve dans le Dossier personnel.

On peut enfin [[:tutoriel/comment_supprimer_un_paquet|supprimer les bibliothèques]] qui ne sont plus utiles :

  git-core subversion libwxbase2.8-dev build-essential libopencascade-dev libwxgtk2.8-dev libgtkglext1-dev python-dev cmake libboost-python-dev

Attention ! Ces paquets  pourraient être utiles à d'autres applications !

===== Voir aussi =====

  * **(en)** [[http://code.google.com/p/heekscad/|Site officiel du projet et wiki sur Google Code]]
  * **(en)** [[https://github.com/Heeks|Code source sur GitHub]]
  * **(en)** [[http://groups.google.com/group/heekscad-users|Groupe de discussion des utilisateurs de HeeksCAD]]
  * **(fr)** [[http://www.linuxgraphic.org/forums/viewforum.php?f=41|Didacticiels et forum sur LinuxGrapic.org]]
  * [[:FreeCAD]], //un logiciel similaire//

----
//Contributeur principal : [[:utilisateurs:Gemnoc]].//

//Basé sur [[http://code.google.com/p/heekscad/wiki/UbuntuInstallation|« How to build and install HeeksCAD »]] du site officiel.//